﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BitcoinLibrary
{
    public class BlockStore
    {
        /**
        * Saves the given block header+extra data. The key isn't specified explicitly as it can be calculated from the
        * StoredBlock directly. Can throw if there is a problem with the underlying storage layer such as running out of
        * disk space.
        */
        public void put(StoredBlock block)
        {
            throw new Exception("NYI");
        }

        /**
        * Returns the StoredBlock given a hash. The returned values block.getHash() method will be equal to the
        * parameter. If no such block is found, returns null.
        */
        public StoredBlock get(byte[] hash)
        {
            throw new Exception("NYI");
        }

        /**
        * Returns the {@link StoredBlock} that represents the top of the chain of greatest total work.
        */
        public StoredBlock getChainHead()
        {
            throw new Exception("NYI");
        }

        /**
        * Sets the {@link StoredBlock} that represents the top of the chain of greatest total work.
        */
        public void setChainHead(StoredBlock chainHead)
        {
            throw new Exception("NYI");
        }
    }
}
